package dao;

import java.util.Date;
import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import dao.utils.GenericHibernateDAO;
import domain.Articulos;
import domain.LineaVenta;
import domain.Ofertas;
import domain.Ofertas;

public class OfertasDAOImpl extends GenericHibernateDAO implements OfertasDAO {

	public OfertasDAOImpl(Session s) {
		super(s);
	}
	
	@Override
	public Ofertas findById(int id) {
		Ofertas ofer = (Ofertas) getSession().createQuery("From Ofertas where idOfertas = ?").setInteger(0, id).uniqueResult();
		return ofer;
	}


	public void borrarOferta(int Id) {
		Ofertas oferta = (Ofertas) getSession()
				.createQuery("from Ofertas as e where e.idOfertas = ?")
				.setInteger(0, Id).uniqueResult();
		Integer idOfertas = oferta.getIdOfertas();
		oferta = (Ofertas) getSession().load(Ofertas.class,
				(Integer) idOfertas);

		// Se realiza el borrado
		getSession().delete(oferta);

	}

	public boolean guardarOferta(Ofertas oferta) {
		try {
			getSession().save(oferta);
			return true;
		} catch (Exception e) {
			System.out.println(e.getMessage());
			return false;
		}

	}
	
	public void modificarOferta(Ofertas oferta){
//		Ofertas oferta = (Ofertas) getSession().createQuery("from Ofertas as e where e.idOfertas = ?").setInteger(0, id).uniqueResult();
//		Integer idOfertas=oferta.getIdOfertas();
//		oferta= (Ofertas) getSession().load(Ofertas.class, (Integer) idOfertas);
		
		getSession().update(oferta);
	}

	@SuppressWarnings("unchecked")
	public List<Ofertas> findAll() {
		Query q = getSession().createQuery("From Ofertas");
		return q.list();
	}
}
